import {messages} from "share/common";
/**
 * Created by zhouli on 18/6/20
 * Email li.zhou@huilianyi.com
 */

import config from 'config';
import httpFetch from 'share/httpFetch';
import errorMessage from 'share/errorMessage';
import {message} from 'antd';
import LoginService from 'containers/login/login.service';
import axios from "axios";

export default {

  //重置密码的接口
  resetPassword: function (params) {
    let item = {
      newPassword: LoginService.enCodePassword((params.newPassword)),
      oldPassword: "",
      client: "web"
    };
    return axios({
      url: config.baseUrl + `/api/refactor/account/change_password/v3`,
      method: 'POST',
      data: item,
    });
  },

  // 获取密码设置规则
  getPasswordRule: function (mobile_or_email) {
    //建议能用邮箱获取,就邮箱,因为手机可能被修改
    return LoginService.getPasswordRuleV2(mobile_or_email);
  },
  // 校验密码
  regPasswordByRule: function (password, password_rule) {
    //先验证长度
    if (password.length < parseInt(password_rule.minLength)) {
      //密码长度不能小于{min}位
      message.error(messages('components.key666',{arg1:password_rule.minLength}/*密码长度不能小于{arg1}位*/));
      return false;
    }
    if (password.length > parseInt(password_rule.maxLength)) {
      // 密码长度不能大于{max}位
      message.error(messages('components.key667',{arg1: password_rule.maxLength}/*密码长度不能大于{arg1}位*/));
      return false;
    }
    //验证数字
    var regexNum = /^.*[0-9].*$/;
    //验证小写字母
    var regexLowerCase = /^.*[a-z].*$/;
    //验证大写字母
    var regexUpperCase = /^.*[A-Z].*$/;
    //验证特殊字符
    var regexSpecialChar = /^.*[~!@#\$%\^&\*\(\)_+\-=\[\]\{\}\\\|\'\";:,\<\.\>\/\?\s+].*$/;
    if (password_rule.isNeedNumber) {
      var val = regexNum.test(password);
      if (!val) {
        // 密码需要包含数字
        message.error(messages('components.key522'/*密码需要包含数字*/));
        return false;
      }
    }
    if (password_rule.isNeedLowercase) {
      var val = regexLowerCase.test(password);
      if (!val) {
        // 密码需要包含小写字母
        message.error(messages('components.key523'/*密码需要包含小写字母*/));
        return false;
      }
    }
    if (password_rule.isNeedUppercase) {
      var val = regexUpperCase.test(password);
      if (!val) {
        // 密码需要包含大写字母
        message.error(messages('components.key524'/*密码需要包含大写字母*/));
        return false;
      }
    }
    if (password_rule.isNeedSpecialChar) {
      var val = regexSpecialChar.test(password);
      if (!val) {
        // 密码需要包含特殊字符
        message.error(messages('components.key525'/*密码需要包含特殊字符*/));
        return false;
      }
    }
    //如果上面都通过
    return true;
  }

}

